import ArrayList from '@ohos.util.ArrayList'

/**
 * 未来几天的天气
 */
export class WeatherForFutureDay {
  /**
   * 代码  说明
   * 200  请求成功
   * 204  请求成功，但你查询的地区暂时没有你需要的数据。
   * 400  请求错误，可能包含错误的请求参数或缺少必选的请求参数。
   * 401  认证失败，可能使用了错误的KEY、数字签名错误、KEY的类型错误（如使用SDK的KEY去访问Web API）。
   * 402  超过访问次数或余额不足以支持继续访问服务，你可以充值、升级访问量或等待访问量重置。
   * 403  无访问权限，可能是绑定的PackageName、BundleID、域名IP地址不一致，或者是需要额外付费的数据。
   * 404  查询的数据或地区不存在。
   * 429  超过限定的QPM（每分钟访问次数），请参考QPM说明
   * 500  无响应或超时，接口服务异常请联系我们
   */
  isInit: boolean = false

  code: string
  /**
   * 当前API的最近更新时间
   */
  updateTime: string
  /**
   * 未来几天的天气
   */
  daily: ArrayList<Daily>

  static transition(dto: any): WeatherForFutureDay {
    let weatherForFutureDay = new WeatherForFutureDay()
    weatherForFutureDay.code = dto.code
    weatherForFutureDay.updateTime = dto.updateTime
    weatherForFutureDay.daily = new ArrayList()
    for (const index in dto.daily) {
      weatherForFutureDay.daily.add(Daily.transition(dto.daily[index]))
    }
    return weatherForFutureDay
  }
}

export class Daily {
  /**
   * 预报日期
   */
  fxDate: string
  /**
   * 预报当天最高温度
   */
  tempMax: string
  /**
   * 预报当天最低温度
   */
  tempMin: string
  /**
   *  预报白天天气状况的图标代码
   */
  iconDay: string
  /**
   * 预报白天天气状况文字描述，包括阴晴雨雪等天气状态的描述
   */
  textDay: string
  /**
   * 预报夜间天气状况的图标代码
   */
  iconNight: string
  /**
   * 预报晚间天气状况文字描述，包括阴晴雨雪等天气状态的描述
   */
  textNight: string
  /**
   * 预报白天风向360角度
   */
  wind360Day: string
  /**
   * 预报白天风向
   */
  windDirDay: string
  /**
   * 预报白天风力等级
   */
  windScaleDay: string
  /**
   * 预报白天风速，公里/小时
   */
  windSpeedDay: string
  /**
   * 预报夜间风向360角度
   */
  wind360Night: string
  /**
   * 预报夜间当天风向
   */
  windDirNight: string
  /**
   * 预报夜间风力等级
   */
  windScaleNight: string
  /**
   * 预报夜间风速，公里/小时
   */
  windSpeedNight: string

  static transition(dto: any): Daily {
    let daily = new Daily()
    daily.fxDate = dto.fxDate
    daily.tempMax = dto.tempMax
    daily.tempMin = dto.tempMin
    daily.iconDay = dto.iconDay
    daily.textDay = dto.textDay
    daily.iconNight = dto.iconNight
    daily.textNight = dto.textNight
    daily.wind360Day = dto.wind360Day
    daily.windDirDay = dto.windDirDay
    daily.windScaleDay = dto.windScaleDay
    daily.windSpeedDay = dto.windSpeedDay
    daily.wind360Night = dto.wind360Night
    daily.windDirNight = dto.windDirNight
    daily.windScaleNight = dto.windScaleNight
    daily.windSpeedNight = dto.windSpeedNight
    return daily
  }
}